對於其他人沒什麼用的我的 git cheatsheet。
感覺還是要有情境呢..
git log --oneline -g
blame
blame -L 5,10
checkout .
checkout <file>
從 staging area 拿回檔案,如果 <file>
不曾被 track 會 errorcheckout <file> HEAD^^
checkout --ours <file>
checkout --theirs <file>
reset
[[git reset]]
--soft resets the head to commit
--mixed 預設。resets the index. 所以 working tree 沒被動到。
--hard resets the index and working tree.git reset e12d8ef^^
^代表回去幾次
相等於 git reset e12d8ef~2
git reflog
git log -g
可以看到 head 被移動的紀錄。
detached HEADgit diff
working tree and indexgit diff --cached HEAD
index 和 head
【狀況題】手邊的工作做到一半,臨時要切換到別的任務stash list
stash apply stash@{0}
stash drop stash@{0}
stash pop stash@{0}
Pull 下載更新
pull = fetch + merge
Pull 指令其實就是去上線抓東西下來(Fetch),並且更新本機的進度(Merge)而已。
【狀況題】怎麼有時候推不上去…pull --rebase
【狀況題】怎麼跟上當初 fork 專案的進度?remote -v
verboseremote add <upstreamname> <giturl>